Skip to content

fix(config): cap prism below 2 in the ractorize bundle - #27

Open
mhenrixon wants to merge 3 commits into
mainfrom
fix/ractorize-prism-cap
Open

mhenrixon wants to merge 3 commits into
mainfrom
fix/ractorize-prism-cap

Conversation

@mhenrixon

@mhenrixon mhenrixon commented Nov 14, 2026 •

Copy link
Copy Markdown
Contributor

Summary

A fresh resolve of Gemfile.ractorize now picks prism 2.1.0, because minitest 6.1 no longer caps prism below 2. refract 1.1.0, which Phlex loads, references Prism::MissingNode, which prism 2 removed. So the ractorize job of any Phlex app fails at boot, before ractorize! runs:

ractorize: boot failed: NameError: uninitialized constant Prism::MissingNode

The fix is merged in refract (yippee-fun/refract#4) but not released yet; yippee-fun/refract#6 asks for the release.

  • config/ractorize.gemfile caps prism at < 2. The cap is added to the repo's own prism requirement, including a gemspec development dependency, or declared when the repo has none. Remove it once refract ships docs: install from RubyGems now that 0.1.0 is released #4.
  • README ("The bundle") and CHANGELOG (0.5.1) say so.

Consumers get the cap when they bump to the release that ships it: conformance.yml copies the gemfile from the kit in the repo's lockfile.

Test plan

  • spec/conformance_kit/ractorize_gemfile_spec.rb: three new examples (no prism line, a Gemfile prism line, a gemspec dev dependency), all seen failing before the change; the two existing examples now expect prism too.
  • bundle exec rake: 246 examples, 0 failures, 18 pending; RuboCop clean. Spec file also green on Ruby 3.2.8.
  • Real app: phlex-reactive main (1db6426), Ruby 4.0.6, no lockfile, bundle exec conformance-kit check --ractorize:
Gemfile.ractorize Resolved prism Result
main 2.1.0 boot failed: NameError: uninitialized constant Prism::MissingNode
this branch 1.9.0 boot: ok, then ractorize! stops at the Rails main proc that rails/rails#59805 fixes

https://claude.ai/code/session_01E7i6yCPUYAKuVY9xXuKLf6


Summary by cubic

Fixes ractorize jobs failing at boot for Phlex apps by capping prism below 2 in config/ractorize.gemfile.

A fresh resolve now picks prism 2.1.0 since minitest 6.1 no longer caps it, and refract 1.1.0 references Prism::MissingNode, which prism 2 removed. The cap is added to the repo's own prism requirement (Gemfile line or gemspec development dependency) or declared when the repo has none, and carries that requirement so Bundler 2.6.5+ does not drop a gemspec's own prism floor. Remove the cap once refract releases yippee-fun/refract#4. README and CHANGELOG document the cap.

Written for commit 15d72ed. Summary will update on new commits.

View guided diff Turn on auto-fix

A fresh resolve of Gemfile.ractorize picks prism 2 now that minitest 6.1
no longer caps it. refract 1.1.0, which Phlex loads, references
Prism::MissingNode, which prism 2 removed, so a Phlex app's ractorize job
failed at boot. The cap is added to the repo's own prism requirement, or
declared when the repo has none, until refract releases
yippee-fun/refract#4 (yippee-fun/refract#6).

Claude-Session: https://claude.ai/code/session_01E7i6yCPUYAKuVY9xXuKLf6
@mhenrixon mhenrixon added bug Something isn't working config Shared RuboCop configs and the reusable CI workflows labels Nov 14, 2026
@mhenrixon mhenrixon moved this to Needs us in Ractor-safe Rails Nov 14, 2026

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found across 4 files

View guided diff | Turn on auto-fix | Re-trigger cubic

Bundler 2.6.5 to 2.7 add a gemspec's development dependencies without
calling +gem+, so the cap never saw them and the final `gem "prism", "< 2"`
replaced the dev dependency, dropping its own requirement (Ruby 3.4.11 CI:
["< 2"] instead of [">= 1.4", "< 2"]). The cap now carries the requirement
already declared for the gem.

Claude-Session: https://claude.ai/code/session_01E7i6yCPUYAKuVY9xXuKLf6

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

0 issues found across 1 file (changes from recent commits).

View guided diff | Turn on auto-fix | Re-trigger cubic

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working config Shared RuboCop configs and the reusable CI workflows

Projects

Status: Needs us

Development

Successfully merging this pull request may close these issues.

1 participant